<template>
  <div>
    <h1>x的坐标{{ x }}</h1>
    <h1>y的坐标{{ y }}</h1>
  </div>
</template>

<script lang="ts">
import { defineComponent, onMounted, onUnmounted, ref } from "vue";

export default defineComponent({
  setup() {
    const x = ref(0);
    const y = ref(0);

    // 绑定的事件对应的回调函数
    const updatePosition = (e: MouseEvent) => {
      x.value = e.pageX;
      y.value = e.pageY;
    };
    onMounted(() => {
      document.addEventListener("click", updatePosition);
    });

    // 离开取消事件  addEventListener
    onUnmounted(() => {
      document.removeEventListener("click", updatePosition);
    });

    // 自定义hook的作用就是将具有特定功能的一段代码封装起来，什么时候用，什么时候调用  模块的复用功能
    return {
      x,
      y,
    };
  },
});
</script>

<style scoped>
</style>